package MsSQL;

import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class ConMsSQL {

    private Connection con = null;
    public static String nomCon = "", tipo="local";
    
    public static void  tipoConeccion(String Cad){
        if(Cad.equals("local")) {
            tipo="local";
        }else{
            tipo="red";
        }
    }

    @SuppressWarnings("CallToThreadDumpStack")
    public static  java.sql.Connection obtenerConexion() {
        @SuppressWarnings("UnusedAssignment")
        String url="", username="", password="";
        Connection cnn=null;
        
        if("local".equals(tipo)){
                url         = "jdbc:sqlserver://localhost:1433;databaseName=SysReaDB;selectMethod=cursor";
                username    = "realezas";
                password    = "user_realeza";
        }else{
                url         = "jdbc:sqlserver://192.168.20.22:1433;databaseName=SysReaDB;selectMethod=cursor";
               username    = "realezas";
                password    = "user_realeza";
        }
        try {
           String drivers = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
                 if (drivers != null){                
                    Class.forName(drivers).newInstance();
                  //  System.out.print(cnn+": "+username); 
                   
                    cnn = DriverManager.getConnection( url, username, password ); 
                 }
         } catch (Exception e) {
            JOptionPane.showMessageDialog(null, ""+e.getMessage());
        }
        return cnn;
    }

    /* Mostrar las propiedades del controlador y los detalles de la base de datos */
    @SuppressWarnings({"UnusedAssignment", "CallToThreadDumpStack"})
    public void displayDbProperties() {
        @SuppressWarnings("UnusedAssignment")
        java.sql.DatabaseMetaData dm = null;
        @SuppressWarnings("UnusedAssignment")
        java.sql.ResultSet rs = null;
        try {
            con = ConMsSQL.obtenerConexion();
            if (con != null) {
                dm = con.getMetaData();
                System.out.println("Información del controlador");
                System.out.println("\tNombre del controlador: " + dm.getDriverName());
                System.out.println("\tVersión del controlador: " + dm.getDriverVersion());
                System.out.println("\nInformación de la base de datos ");
                System.out.println("\tNombre de la base de datos: " + dm.getDatabaseProductName());
                System.out.println("\tVersión de la base de datos: " + dm.getDatabaseProductVersion());
                System.out.println("Catálogos disponibles ");
                rs = dm.getCatalogs();
                while (rs.next()) {
                    System.out.println("\tcatálogo: " + rs.getString(1));
                }
                rs.close();
                rs = null;
                closeConnection();
            } else {
                System.out.println("Error: No hay ninguna conexión activa");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        dm = null;
    }

    @SuppressWarnings("CallToThreadDumpStack")
    private void closeConnection() {
        try {
            if (con != null) {
                con.close();
            }
            con = null;
        } catch (Exception e) {
            e.printStackTrace();
        }
    } 
}